// Copyright 2022 jeff.li. and/or its affiliates.

#pragma once

#include <tbir/pipeline/global_unique_index.h>
#include <tbir/pipeline/op_kernel.h>

namespace tbir::runtime {

    class Symbol;

    class ConstantOp : public OpKernel {
    public:
        ConstantOp() : OpKernel() {
            class_name_ = "ConstantOp";
        }

        virtual ~ConstantOp() = default;

        void Init() override;

    public:
        static std::unique_ptr<Symbol> make_symbol(std::shared_ptr<ConstantOp> op);

        RTValue Process(PyArgs inputs) const override;

    private:
        RTValue data;
    };

}  // namespace tbir::runtime
